define(function(){
	// checkbox
	/*
	var myDatepicker=new Datepicker({
		inputDom:this,
		DateDefault:$.newDate(),
		DateNow:$.newDate(),
		weekStartDay:1,
		canlendarNum:2,
		valueType:$this.attr('data-valuetype') || 'single',
		min:$this.attr('data-datemin'),
		max:$this.attr('data-datemax')
	});
	*/
	var WindowFollowNav=function (config){
		var vsnBar=this;
		vsnBar.navBtnListArr=config.navBtnListArr||[];
		vsnBar.$container=config.$container||$('body');
		vsnBar.position=config.position||'right middle';
		vsnBar.direction=config.direction||'y';
		vsnBar.$dom=$('<div class="windowFollowNav"></div>');
		function NavBtn(navBtnData,isLast){
			var navBtn=this;
			navBtn.$dom=$('<li class="navBtn"></li>');
			if(!isLast){
				switch(vsnBar.direction){
					case 'x':
						navBtn.$dom.css({
							'margin-right':1
						})
						break;
					case 'y':
						navBtn.$dom.css({
							'margin-bottom':1
						})
						break;
				}
			}

			navBtn.$dom.append(navBtnData.content);
			for(var k in navBtnData.callback){
				navBtn.$dom.on(k,function(e){
					navBtnData.callback[k](e,this)
				})
			}
		}
		function NavBtnList(navBtnListArr){
			var navBtnList=this;
			navBtnList.$dom=$('<ul class="navBtnList"></ul>');
			switch(vsnBar.direction){
				case 'x':
					navBtnList.$dom.addClass('horizontal')
					break;
			}
			navBtnList.navBtnDomListArr=[];
			for(var i=0,len=navBtnListArr.length;i<len;i++){
				var isLast=(i==len-1);
				var navBtn=new NavBtn(navBtnListArr[i],isLast);
				navBtnList.navBtnDomListArr.push(navBtn);
				navBtn.$dom.appendTo(navBtnList.$dom);
			}
		}
		if(vsnBar.navBtnListArr.length>0){
			vsnBar.navBtnList=new NavBtnList(vsnBar.navBtnListArr);
			vsnBar.navBtnList.$dom.appendTo(vsnBar.$dom);
		}
		vsnBar.$dom.appendTo(vsnBar.$container);
		vsnBar.positionSet=function(positionStyleArr){
			for(var i=0,len=positionStyleArr.length;i<len;i++){
				var positionStyle=positionStyleArr[i];
				var edgeMargin=10;
				var positionDirection;
				switch(positionStyle){
					case 'left':
						positionDirection='x';
						vsnBar.$dom.css({
							'left':edgeMargin,
							'margin-left':0,
							'right':'auto'
						});
						break;
					case 'center':
						positionDirection='x';
						vsnBar.$dom.css({
							'left':'50%',
							'margin-left':-vsnBar.$dom.outerWidth()/2,
							'right':'auto'
						});
						break;
					case 'right':
						positionDirection='x';
						vsnBar.$dom.css({
							'left':'auto',
							'margin-left':0,
							'right':edgeMargin
						});
						break;
					case 'top':
						positionDirection='y';
						vsnBar.$dom.css({
							'top':edgeMargin,
							'margin-top':0,
							'bottom':'auto'
						});
						break;
					case 'middle':
						positionDirection='y';
						vsnBar.$dom.css({
							'top':'50%',
							'margin-top':-vsnBar.$dom.outerHeight()/2,
							'bottom':'auto'
						});
						break;
					case 'bottom':
						positionDirection='y';
						vsnBar.$dom.css({
							'top':'auto',
							'margin-top':0,
							'bottom':edgeMargin
						});
						break;
				}

			}
		}
		vsnBar.positionSet(vsnBar.position.split(' '));

	}

	return WindowFollowNav;
})
